<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <script type="text/javascript">
      console.log("======= return 函数调用 ======");
      function add(x,y) {
        return x+y;
          console.log("返回后面的代码");
      }

        console.log(add(2,3));

          console.log("======= 递归 ======");
          function fib(num)  {
            if (num > 2) {
              return fib(num - 2) + fib(num - 1);
            }else {
              return 1;
            }
          }
      console.log(fib(6));

      console.log("======凡是可以使用值的地方，就能使用函数======");
      var option = add;
      console.log(option(5,6));
        function a(op) {
          return op;
        }
        a(add(8,9));
        var b ={
          name :add,
          }
        console.log(b.name(5,6));
        console.log("======name属性======");
          console.log("======name属性返回紧跟在function关键字之后的那个函数名======");
            console.log("======f1======");
            function f1(){
              }
              console.log(f1.name);
              var f2 =function () {

              }
      console.log("======f2======");
         console.log(f2.name);

         console.log("======length属性======");
         console.log("======length属性返回函数预期传入函数的个数，即函数定义中的函数个数======");
           function f3(a,b,c,d){

           }
           console.log(f3.length);
            console.log("======函数的方法返回函数的源码======");
            function f4() {
              a();
              b();
              c();
              d();
            }
            console.log(f4.toString());
            console.log("======利用这一点，可以变相实现多行字符串======");
            var f5 =function (val){
              var arr = val.toString().split('\n');
              return arr .slice(1,arr,length-1).join('\n');
            }
            function f6() {

            }
      console.log(f5(f6.toString()));
      console.log("======全局变量，在函数外声明的变量======");
      console.log("======局局变量，在函数外声明的变量======");
      var name ="debang";
      function f7(){
        return name;
      }
       function f8(){
       var age = 18;
      return name + "is good,this age is"+age;
      }

      console.log(f7());
        console.log(f8());
          console.log(f7()+f8());


          </script>
  </body>
</html>
